package com.qzdsoft.erpcloud.vo.proj;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 
 * simple introduction
 *
 * <p>detailed comment
 * @author ZhangHao Sep 27, 2017
 * 带BOM信息的 存货信息
 * @see
 * @since 1.0
 */
public class ProjMaterialBomInfo {
    /**
     * 物料清单Id BOMId
     */
    private Integer materialBomId;
    
    /**
     * BOM版本
     */
    private String materialBomVersion;
    
    /**
     * 是否默认BOM
     */
    private boolean isDefault;
    
    /**
     * BOM 级次
     */
    private Integer level;
    
    
    /**
     * 物料信息id
     */
    private Integer id;

    /**
     * 所属公司id
     */
    private Integer companyId;

    /**
     * 物料编码
     */
    private String materialCoding;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 物料规格
     */
    private String materialSpec;

    /**
     * 物料类型：从数据字典中选择
     */
    private Integer materialTypeId;

    /**
     * 品牌：从数据字典中选择
     */
    private Integer brandId;

    /**
     * 计量单位id
     */
    private Integer measurementUId;

    /**
     * 最小包装量
     */
    private Integer minimumPackingQuantity;

    /**
     * 现存量
     */
    private Integer onHandQuantity;

    /**
     * 可用量
     */
    private Integer availableQuantity;

    /**
     * 累计进货量
     */
    private Integer cumulativeStock;

    /**
     * 累计退货量
     */
    private Integer cumulativeReturn;

    /**
     * 累计出货量
     */
    private Integer cumulativeShipments;

    /**
     * 累计退库量
     */
    private Integer cumulativeWithdrawal;

    /**
     * 计价方式:从数据字典中选择
     */
    private Integer materialPriceTypeId;

    /**
     * 是否停用
     */
    private Boolean isNoUsed;

    /**
     * 是否可销售
     */
    private Boolean isSale;

    /**
     * 是否外购
     */
    private Boolean isBuy;

    /**
     * 是否生产耗用
     */
    private Boolean isProdConsumption;

    /**
     * 是否虚拟件
     */
    private Boolean isVirtual;

    /**
     * 是否委外
     */
    private Boolean isOutsource;

    /**
     * 保存图片上传地址
     */
    private String pictureAddr;

    /**
     * 创建者Id,当前登录人
     */
    private Integer creatorId;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8",pattern="yyyy-MM-dd")
    private Date ctime;

    /**
     * 备注
     */
    
    private String remark;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 物料类型
     */
    private String materialTypeName;

    /**
     * 品牌
     */
    private String brandName;
    
    /**
     * 品牌
     */
    private String creatorName;

    /**
     * 计量单位名称
     */
    private String measurementUName;

    /**
     * 计价方式名称
     */
    private String materialPriceTypeName;

    /**
     * 获取物料信息id
     *
     * @return id - 物料信息id
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置物料信息id
     *
     * @param id 物料信息id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取所属公司id
     *
     * @return company_id - 所属公司id
     */
    public Integer getCompanyId() {
        return companyId;
    }

    /**
     * 设置所属公司id
     *
     * @param companyId 所属公司id
     */
    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    /**
     * 获取物料编码
     *
     * @return material_coding - 物料编码
     */
    public String getMaterialCoding() {
        return materialCoding;
    }

    /**
     * 设置物料编码
     *
     * @param materialCoding 物料编码
     */
    public void setMaterialCoding(String materialCoding) {
        this.materialCoding = materialCoding;
    }

    /**
     * 获取物料名称
     *
     * @return material_name - 物料名称
     */
    public String getMaterialName() {
        return materialName;
    }

    /**
     * 设置物料名称
     *
     * @param materialName 物料名称
     */
    public void setMaterialName(String materialName) {
        this.materialName = materialName;
    }

    /**
     * 获取物料规格
     *
     * @return material_spec - 物料规格
     */
    public String getMaterialSpec() {
        return materialSpec;
    }

    /**
     * 设置物料规格
     *
     * @param materialSpec 物料规格
     */
    public void setMaterialSpec(String materialSpec) {
        this.materialSpec = materialSpec;
    }

    /**
     * 获取物料类型：从数据字典中选择
     *
     * @return material_type_id - 物料类型：从数据字典中选择
     */
    public Integer getMaterialTypeId() {
        return materialTypeId;
    }

    /**
     * 设置物料类型：从数据字典中选择
     *
     * @param materialTypeId 物料类型：从数据字典中选择
     */
    public void setMaterialTypeId(Integer materialTypeId) {
        this.materialTypeId = materialTypeId;
    }

    /**
     * 获取品牌：从数据字典中选择
     *
     * @return brand_id - 品牌：从数据字典中选择
     */
    public Integer getBrandId() {
        return brandId;
    }

    /**
     * 设置品牌：从数据字典中选择
     *
     * @param brandId 品牌：从数据字典中选择
     */
    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    /**
     * 获取计量单位id
     *
     * @return measurement_u_id - 计量单位id
     */
    public Integer getMeasurementUId() {
        return measurementUId;
    }

    /**
     * 设置计量单位id
     *
     * @param measurementUId 计量单位id
     */
    public void setMeasurementUId(Integer measurementUId) {
        this.measurementUId = measurementUId;
    }

    /**
     * 获取最小包装量
     *
     * @return minimum_packing_quantity - 最小包装量
     */
    public Integer getMinimumPackingQuantity() {
        return minimumPackingQuantity;
    }

    /**
     * 设置最小包装量
     *
     * @param minimumPackingQuantity 最小包装量
     */
    public void setMinimumPackingQuantity(Integer minimumPackingQuantity) {
        this.minimumPackingQuantity = minimumPackingQuantity;
    }

    /**
     * 获取现存量
     *
     * @return on_hand_quantity - 现存量
     */
    public Integer getOnHandQuantity() {
        return onHandQuantity;
    }

    /**
     * 设置现存量
     *
     * @param onHandQuantity 现存量
     */
    public void setOnHandQuantity(Integer onHandQuantity) {
        this.onHandQuantity = onHandQuantity;
    }

    /**
     * 获取可用量
     *
     * @return available_quantity - 可用量
     */
    public Integer getAvailableQuantity() {
        return availableQuantity;
    }

    /**
     * 设置可用量
     *
     * @param availableQuantity 可用量
     */
    public void setAvailableQuantity(Integer availableQuantity) {
        this.availableQuantity = availableQuantity;
    }

    /**
     * 获取累计进货量
     *
     * @return cumulative_stock - 累计进货量
     */
    public Integer getCumulativeStock() {
        return cumulativeStock;
    }

    /**
     * 设置累计进货量
     *
     * @param cumulativeStock 累计进货量
     */
    public void setCumulativeStock(Integer cumulativeStock) {
        this.cumulativeStock = cumulativeStock;
    }

    /**
     * 获取累计退货量
     *
     * @return cumulative_return - 累计退货量
     */
    public Integer getCumulativeReturn() {
        return cumulativeReturn;
    }

    /**
     * 设置累计退货量
     *
     * @param cumulativeReturn 累计退货量
     */
    public void setCumulativeReturn(Integer cumulativeReturn) {
        this.cumulativeReturn = cumulativeReturn;
    }

    /**
     * 获取累计出货量
     *
     * @return cumulative_shipments - 累计出货量
     */
    public Integer getCumulativeShipments() {
        return cumulativeShipments;
    }

    /**
     * 设置累计出货量
     *
     * @param cumulativeShipments 累计出货量
     */
    public void setCumulativeShipments(Integer cumulativeShipments) {
        this.cumulativeShipments = cumulativeShipments;
    }

    /**
     * 获取累计退库量
     *
     * @return cumulative_withdrawal - 累计退库量
     */
    public Integer getCumulativeWithdrawal() {
        return cumulativeWithdrawal;
    }

    /**
     * 设置累计退库量
     *
     * @param cumulativeWithdrawal 累计退库量
     */
    public void setCumulativeWithdrawal(Integer cumulativeWithdrawal) {
        this.cumulativeWithdrawal = cumulativeWithdrawal;
    }

    /**
     * 获取计价方式:从数据字典中选择
     *
     * @return material_price_type_id - 计价方式:从数据字典中选择
     */
    public Integer getMaterialPriceTypeId() {
        return materialPriceTypeId;
    }

    /**
     * 设置计价方式:从数据字典中选择
     *
     * @param materialPriceTypeId 计价方式:从数据字典中选择
     */
    public void setMaterialPriceTypeId(Integer materialPriceTypeId) {
        this.materialPriceTypeId = materialPriceTypeId;
    }

    /**
     * 获取是否停用
     *
     * @return is_no_used - 是否停用
     */
    public Boolean getIsNoUsed() {
        return isNoUsed;
    }

    /**
     * 设置是否停用
     *
     * @param isNoUsed 是否停用
     */
    public void setIsNoUsed(Boolean isNoUsed) {
        this.isNoUsed = isNoUsed;
    }

    /**
     * 获取是否可销售
     *
     * @return is_sale - 是否可销售
     */
    public Boolean getIsSale() {
        return isSale;
    }

    /**
     * 设置是否可销售
     *
     * @param isSale 是否可销售
     */
    public void setIsSale(Boolean isSale) {
        this.isSale = isSale;
    }

    /**
     * 获取是否外购
     *
     * @return is_buy - 是否外购
     */
    public Boolean getIsBuy() {
        return isBuy;
    }

    /**
     * 设置是否外购
     *
     * @param isBuy 是否外购
     */
    public void setIsBuy(Boolean isBuy) {
        this.isBuy = isBuy;
    }

    /**
     * 获取是否生产耗用
     *
     * @return is_prod_consumption - 是否生产耗用
     */
    public Boolean getIsProdConsumption() {
        return isProdConsumption;
    }

    /**
     * 设置是否生产耗用
     *
     * @param isProdConsumption 是否生产耗用
     */
    public void setIsProdConsumption(Boolean isProdConsumption) {
        this.isProdConsumption = isProdConsumption;
    }

    /**
     * 获取是否虚拟件
     *
     * @return is_virtual - 是否虚拟件
     */
    public Boolean getIsVirtual() {
        return isVirtual;
    }

    /**
     * 设置是否虚拟件
     *
     * @param isVirtual 是否虚拟件
     */
    public void setIsVirtual(Boolean isVirtual) {
        this.isVirtual = isVirtual;
    }

    /**
     * 获取是否委外
     *
     * @return is_outsource - 是否委外
     */
    public Boolean getIsOutsource() {
        return isOutsource;
    }

    /**
     * 设置是否委外
     *
     * @param isOutsource 是否委外
     */
    public void setIsOutsource(Boolean isOutsource) {
        this.isOutsource = isOutsource;
    }

    /**
     * 获取保存图片上传地址
     *
     * @return picture_addr - 保存图片上传地址
     */
    public String getPictureAddr() {
        return pictureAddr;
    }

    /**
     * 设置保存图片上传地址
     *
     * @param pictureAddr 保存图片上传地址
     */
    public void setPictureAddr(String pictureAddr) {
        this.pictureAddr = pictureAddr;
    }

    /**
     * 获取创建者Id,当前登录人
     *
     * @return creator_id - 创建者Id,当前登录人
     */
    public Integer getCreatorId() {
        return creatorId;
    }

    /**
     * 设置创建者Id,当前登录人
     *
     * @param creatorId 创建者Id,当前登录人
     */
    public void setCreatorId(Integer creatorId) {
        this.creatorId = creatorId;
    }

    /**
     * 获取创建时间
     *
     * @return ctime - 创建时间
     */
    public Date getCtime() {
        return ctime;
    }

    /**
     * 设置创建时间
     *
     * @param ctime 创建时间
     */
    public void setCtime(Date ctime) {
        this.ctime = ctime;
    }

    /**
     * 获取备注
     *
     * @return remark - 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置备注
     *
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 获取公司名称
     *
     * @return company_name - 公司名称
     */
    public String getCompanyName() {
        return companyName;
    }

    /**
     * 设置公司名称
     *
     * @param companyName 公司名称
     */
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    /**
     * 获取物料类型
     *
     * @return material_type_name - 物料类型
     */
    public String getMaterialTypeName() {
        return materialTypeName;
    }

    /**
     * 设置物料类型
     *
     * @param materialTypeName 物料类型
     */
    public void setMaterialTypeName(String materialTypeName) {
        this.materialTypeName = materialTypeName;
    }

    /**
     * 获取品牌
     *
     * @return brand_name - 品牌
     */
    public String getBrandName() {
        return brandName;
    }

    /**
     * 设置品牌
     *
     * @param brandName 品牌
     */
    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    /**
     * 获取计量单位名称
     *
     * @return measurement_u_name - 计量单位名称
     */
    public String getMeasurementUName() {
        return measurementUName;
    }

    /**
     * 设置计量单位名称
     *
     * @param measurementUName 计量单位名称
     */
    public void setMeasurementUName(String measurementUName) {
        this.measurementUName = measurementUName;
    }

    /**
     * 获取计价方式名称
     *
     * @return material_price_type_name - 计价方式名称
     */
    public String getMaterialPriceTypeName() {
        return materialPriceTypeName;
    }

    /**
     * 设置计价方式名称
     *
     * @param materialPriceTypeName 计价方式名称
     */
    public void setMaterialPriceTypeName(String materialPriceTypeName) {
        this.materialPriceTypeName = materialPriceTypeName;
    }
    
    public String getCreatorName(){
        return creatorName;
    }

    public void setCreatorName(String creatorName){
        this.creatorName = creatorName;
    }

    public Integer getMaterialBomId()
    {
        return materialBomId;
    }

    public void setMaterialBomId(Integer materialBomId)
    {
        this.materialBomId = materialBomId;
    }

    public String getMaterialBomVersion()
    {
        return materialBomVersion;
    }

    public void setMaterialBomVersion(String materialBomVersion)
    {
        this.materialBomVersion = materialBomVersion;
    }

    public boolean isDefault()
    {
        return isDefault;
    }

    public void setDefault(boolean isDefault)
    {
        this.isDefault = isDefault;
    }

    public Integer getLevel()
    {
        return level;
    }

    public void setLevel(Integer level)
    {
        this.level = level;
    }
}